package com.liqw.spi.property;

import com.liqw.Constant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.env.PropertySourceLoader;
import org.springframework.core.env.PropertySource;
import org.springframework.core.io.Resource;

import java.io.IOException;
import java.util.Collections;
import java.util.List;

// ======================== 自定义配置加载器 ========================
@Slf4j
public class CustomPropertyLoader implements PropertySourceLoader {
    @Override
    public String[] getFileExtensions() {
        // 打印日志信息
        System.out.println(Constant.getStepStr("CustomPropertyLoader.getFileExtensions", Constant.MODE_SPI) + "CustomPropertyLoader - getFileExtensions ");
        // 返回支持的文件扩展名数组
        return new String[]{"demo"}; // 支持.demo文件
    }

    @Override
    public List<PropertySource<?>> load(String name, Resource resource) throws IOException {
        System.out.println(name);
        // 实际解析自定义配置文件
        System.out.println(Constant.getStepStr("CustomPropertyLoader.load", Constant.MODE_SPI) + "CustomPropertyLoader - 加载自定义配置文件: " + resource.getFilename());
        return Collections.emptyList();
    }
}
